voicemeeter\interface\parameters/
fx.rs

1//! Fx
2use super::*;
3
4/// Fx parameters
5pub struct VoicemeeterFx<'a> {
6    remote: &'a VoicemeeterRemote,
7}
8
9// Parameter Name Value Range Remark Ver.
10// Fx.Reverb.On 0 (off) or 1 (on) Switch On/Off 3
11// Fx.Reverb.AB 0 (A) or 1 (B) Change A/B Mem 3
12// Fx.Delay.On 0 (off) or 1 (on) Switch On/Off 3
13// Fx.Delay.AB 0 (A) or 1 (B) Change A/B Mem 3
14
15impl<'a> VoicemeeterFx<'a> {
16    #[doc(hidden)]
17    pub fn new(remote: &'a VoicemeeterRemote) -> Self {
18        Self { remote }
19    }
20
21    /// Get the identifier for an option: `Fx.{dot}`
22    pub fn param(&self, dot: impl Display) -> Cow<'static, ParameterNameRef> {
23        Cow::Owned(format!("{FX}.{dot}").into())
24    }
25
26    /// Reverb status
27    pub fn reverb_on(&self) -> BoolParameter<'_> {
28        BoolParameter::new(self.param("Reverb.On"), self.remote)
29    }
30    /// Reverb AB choice
31    pub fn reverb_ab(&self) -> BoolParameter<'_> {
32        BoolParameter::new(self.param("Reverb.AB"), self.remote)
33    }
34    /// Delay status
35    pub fn delay_on(&self) -> BoolParameter<'_> {
36        BoolParameter::new(self.param("Delay.On"), self.remote)
37    }
38    /// Delay AB choice
39    pub fn delay_ab(&self) -> BoolParameter<'_> {
40        BoolParameter::new(self.param("Delay.AB"), self.remote)
41    }
42}